home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / com / computer / casio_st / prog_fx / oisac2 / l_5100.txt < prev    next >
Text File  |  1994-03-01  |  6KB  |  126 lines

  1. 5 ONERRORGOTO2000:DEFSEG=0
  2. 10 CLS:MODE8:DIM:ERASEa,b,d:DIMa(1,1),b(1,1),d(1,1):m=1:n=1:o=1:p=1:q=1:r=1:c$=CHR$(5):e=1
  3. 40 GOSUB460:GOSUB470:GOSUB420
  4. 50 LOCATE0,0:PRINTc$;"Matrix  A";m$;":B";n$;
  5. 60 LOCATE28,1:z=ASC(INPUT$(1)):IFz>96 THENz=z-32
  6. 100 ONz-41 GOTO1250,1300,,1350,1500,,,,,,,,,,,,,,,,,,,120,130,700,800,,,,,800,,1400,1100,1150,,,300,,,,1200
  7. 110 GOTO60
  8. 120 x=m:GOTO500
  9. 130 x=o:GOTO600
  10. 300 LOCATE0,0:FORi=0 TOm:FORj=0 TOn:z=a(i,j):IFz<>0 ANDABSz>=1e-90 THENz=ROUND(z,LOG(ABSz)-7)
  11. 310 IFz<>0 ANDABSz<1e-90 THENz=z*1e10:z=ROUND(z,LOG(ABSz)-7):z=z/1e10
  12. 320 PRINTc$;"a(";MID$(STR$(i+1),2);",";MID$(STR$(j+1),2);") =";z;
  13. 330 z=ASC(INPUT$(1,@)):IFz=28 ORz=29 THEN50
  14. 340 IFz>96 THENz=z-32
  15. 350 ONz-41 GOTO1250,1300,,1350,1500,,,,,,,,,,,,,,,,,,,120,130,700,800,,,,,800,,1400,1100,1150,,,300,,,,1200
  16. 360 IFz<>13 ANDz<>31 ANDz<>30 THEN330
  17. 370 IF(z=31 ANDi+j=n+m) OR(z=30 ANDi+j=0) THEN330
  18. 390 IFz=30 THENIFj=0 THENi=i-1:j=n-1 ELSEj=j-2
  19. 400 NEXT:NEXT:GOTO50
  20. 420 CLS:PRINT:PRINT">A,B,D,I,T,K,+,-,*,M,L,C,P ?";:RETURN
  21. 440 FORi=0 TOm:FORj=0 TOn:a(i,j)=c(i,j):NEXT:NEXT:RETURN
  22. 460 n$="("+MID$(STR$(o+1),2)+","+MID$(STR$(p+1),2)+")":RETURN
  23. 470 m$="("+MID$(STR$(m+1),2)+","+MID$(STR$(n+1),2)+")":RETURN
  24. 480 m$="("+MID$(STR$(i+1),2)+","+MID$(STR$(j+1),2)+")":RETURN
  25. 500 i=x:j=n:GOSUB480:p$="A(m,n) = A"+m$:s$="m":z=x+1:GOSUB1900:IFw THEN40 ELSEx=z-1
  26. 510 i=x:j=n:GOSUB480:p$="A(m,n) = A"+m$:s$="n":z=n+1:GOSUB1900:IFw THEN500
  27. 520 m=x:n=z-1
  28. 530 DIMa(m,n)
  29. 540 FORi=0 TOm:FORj=0 TOn
  30. 550 p$="a("+MID$(STR$(i+1),2)+","+MID$(STR$(j+1),2)+")"
  31. 560 z=a(i,j):GOSUB1850:IFw=13 THENa(i,j)=z:GOTO580
  32. 570 IFj=0 THENIFi=0 THEN510 ELSEi=i-1:j=n-1 ELSEj=j-2
  33. 580 NEXT:NEXT:GOTO40
  34. 600 i=x:j=p:GOSUB480:p$="B(m,n) = B"+m$:s$="m":z=x+1:GOSUB1900:IFw THEN40 ELSEx=z-1
  35. 610 i=x:j=p:GOSUB480:p$="B(m,n) = B"+m$:s$="n":z=p+1:GOSUB1900:IFw THEN600
  36. 620 o=x:p=z-1
  37. 630 DIMb(o,p)
  38. 640 FORi=0 TOo:FORj=0 TOp
  39. 650 p$="b("+MID$(STR$(i+1),2)+","+MID$(STR$(j+1),2)+")"
  40. 660 z=b(i,j):GOSUB1850:IFw=13 THENb(i,j)=z:GOTO680
  41. 670 IFj=0 THENIFi=0 THEN610 ELSEi=i-1:j=n-1 ELSEj=j-2
  42. 680 NEXT:NEXT:GOTO40
  43. 700 LOCATE0,0:PRINTc$;"Change  A";m$;"  B";n$;:IFm=o ANDn=p THEN750
  44. 710 ERASEc:DIMc(m,n):FORi=0 TOm:FORj=0 TOn:c(i,j)=a(i,j):NEXT:NEXT
  45. 720 ERASEa:DIMa(o,p):FORi=0 TOo:FORj=0 TOp:a(i,j)=b(i,j):NEXT:NEXT
  46. 730 ERASEb:DIMb(m,n):FORi=0 TOm:FORj=0 TOn:b(i,j)=c(i,j):NEXT:NEXT
  47. 740 x=m:y=n:m=o:n=p:o=x:p=y:z$=m$:m$=n$:n$=z$:GOTO50
  48. 750 FORi=0 TOm:FORj=0 TOn:w=a(i,j):a(i,j)=b(i,j):b(i,j)=w:NEXT:NEXT:GOTO50
  49. 800 LOCATE0,0:IFm<>n THENGOSUB1830:GOTO50
  50. 810 IFz=68 THENPRINTc$;"Determinant A = ....."; ELSEPRINTc$;"Inverse A  A";
  51. 820 t=1E-10:d=1
  52. 830 ERASEc,e:y=2*(m+1)-1:x=m:DIMc(x,y),e(x)
  53. 840 FORi=0 TOm:FORj=0 TOn:c(i,j)=a(i,j):NEXT:NEXT
  54. 850 FORi=0 TOm:FORj=n+1 TOy:IFi=j-n-1 THENc(i,j)=1
  55. 860 NEXT:NEXT
  56. 870 FORi=0 TOx:e(i)=i:NEXT
  57. 880 FORk=0 TOx:w=ABS(c(k,k)):a=k:b=k
  58. 890 FORi=k TOx:FORj=k TOx:IFw<ABS(c(i,j)) THENw=ABS(c(i,j)):a=i:b=j
  59. 900 NEXT:NEXT
  60. 920 IFw<t THENIFz=68 THENd=0:GOTO1000 ELSEGOSUB1830:GOTO50
  61. 940 IFk<>a THENd=-d:FORj=k TOy:w=c(k,j):c(k,j)=c(a,j):c(a,j)=w:NEXT
  62. 950 IFk<>b THENd=-d:FORi=0 TOx:w=c(i,k):c(i,k)=c(i,b):c(i,b)=w:NEXT:w=e(k):e(k)=e(b):e(b)=w
  63. 960 w=c(k,k):d=d*w:c=k+1:FORj=c TOy:c(k,j)=c(k,j)/w:NEXT
  64. 970 FORi=0 TOx:IFi<>k THENw=c(i,k):FORj=c TOy:c(i,j)=c(i,j)-w*c(k,j):NEXT
  65. 980 NEXT:NEXT
  66. 1000 IFz=68 THENPRINTc$;"Determinant A =";STR$(d);:z$=INPUT$(1,@):GOTO50
  67. 1040 w=x+1:FORj=w TOy:FORi=0 TOx:w=e(i):c(w,x)=c(i,j):NEXT
  68. 1050 FORi=0 TOx:c(i,j)=c(i,x):NEXT:NEXT
  69. 1070 FORi=0 TOx:FORj=0 TOx:a(i,j)=c(i,j+x+1):NEXT:NEXT:GOTO300
  70. 1100 m=q:n=r:GOSUB470:LOCATE0,0:PRINTc$;"Load  A  M";m$;
  71. 1110 ERASEa:DIMa(m,n):FORi=0 TOm:FORj=0 TOn:a(i,j)=d(i,j):NEXT:NEXT:GOTO50
  72. 1150 q=m:r=n:GOSUB470:LOCATE0,0:PRINTc$;"Memory  A  M";m$;
  73. 1160 ERASEd:DIMd(q,r):FORi=0 TOm:FORj=0 TOn:d(i,j)=a(i,j):NEXT:NEXT:GOTO50
  74. 1200 w=m:m=n:n=w:GOSUB470:LOCATE0,0:PRINTc$;"Transpose  A  A";m$;
  75. 1210 ERASEc:DIMc(m,n):FORi=0 TOn:FORj=0 TOm:c(j,i)=a(i,j):NEXT:NEXT
  76. 1220 ERASEa:DIMa(m,n):GOSUB440:GOTO300
  77. 1250 LOCATE0,0:IFn<>o THENGOSUB1830:GOTO50
  78. 1260 i=m:j=p:GOSUB480:PRINTc$;"A*B  A";m$;
  79. 1270 ERASEc:DIMc(m,p):FORi=0 TOm:FORj=0 TOp:w=0:FORk=0 TOn:w=w+a(i,k)*b(k,j):NEXT:c(i,j)=w:NEXT:NEXT:IFm<>o OR n<>p THENn=p:ERASEa:DIMa(m,n)
  80. 1280 GOSUB440:GOTO300
  81. 1300 LOCATE0,0:IFm<>o ORn<>p THENGOSUB1830:GOTO50
  82. 1310 PRINTc$;"A+B  A";m$;
  83. 1320 ERASEc:DIMc(m,n):FORi=0 TOm:FORj=0 TOn:c(i,j)=a(i,j)+b(i,j):NEXT:NEXT:GOSUB440:GOTO300
  84. 1350 LOCATE0,0:IFm<>o ORn<>p THENGOSUB1830:GOTO50
  85. 1360 PRINTc$;"A-B  A";m$;
  86. 1370 ERASEc:DIMc(m,n):FORi=0 TOm:FORj=0 TOn:c(i,j)=a(i,j)-b(i,j):NEXT:NEXT:GOSUB440:GOTO300
  87. 1400 p$="k*A"+m$+"  A":z=e:GOSUB1950:GOSUB420:IFw THEN50 ELSEe=z
  88. 1410 LOCATE0,0:PRINTp$;
  89. 1420 ERASEc:DIMc(m,n):FORi=0 TOm:FORj=0 TOn:c(i,j)=e*a(i,j):NEXT:NEXT:GOSUB440:GOTO300
  90. 1500 DEFCHR$(254)="0080F08000":CLS:GOSUB1600:i=2
  91. 1510 PRINT:ONi GOSUB1600,1610,1620,1630,1640,1650,1660,1670,1680,1690,1700,1710,1720
  92. 1520 z=ASC(INPUT$(1,@)):IFz=28 ORz=29 THEN1580
  93. 1530 IFz<>13 ANDz<>31 ANDz<>30 THEN1520
  94. 1540 IF(z=31 ANDi=13) OR(z=30 ANDi=1) THEN1520
  95. 1550 IFz=30 THENi=i-2
  96. 1570 i=i+1:IFi<14 THEN1510
  97. 1580 GOSUB420:GOTO50
  98. 1600 PRINT" A : input A(m,n)";:RETURN
  99. 1610 PRINT" B : input B(m,n)";:RETURN
  100. 1620 PRINT" D : determinant A";:RETURN
  101. 1630 PRINT" I : inverse         Až  A";:RETURN
  102. 1640 PRINT" T : transposition   A“  A";:RETURN
  103. 1650 PRINT" K : scalar-cal      k*A  A";:RETURN
  104. 1660 PRINT" + : addition        A+B  A";:RETURN
  105. 1670 PRINT" - : subtraction     A-B  A";:RETURN
  106. 1680 PRINT" * : multiplication  A*B  A";:RETURN
  107. 1690 PRINT" M : memory          A  M";:RETURN
  108. 1700 PRINT" L : load            A  M";:RETURN
  109. 1710 PRINT" C : change          A  B";:RETURN
  110. 1720 PRINT" P : print A(m,n)";:RETURN
  111. 1830 LOCATE0,0:PRINTc$;"not found";:z$=INPUT$(1,@):RETURN
  112. 1850 CLS:PRINTp$;" =";z;
  113. 1860 LOCATE0,1:PRINTc$;"?";:INPUT@16;z:LOCATE0,0:w=PEEK(&H65B):RETURN
  114. 1900 CLS:PRINTp$;
  115. 1910 LOCATE0,1:PRINTc$;s$;" ?";:INPUT@3;z:LOCATE0,0:w=PEEK(&H65B)-13:IFw THENRETURN
  116. 1920 IFz<1 ORz>10 ORFRAC(z)<>0 THEN1910 ELSERETURN
  117. 1950 CLS:PRINTp$;
  118. 1960 LOCATE0,1:PRINTc$;"k=";z;"?";:INPUT@12;z:LOCATE0,0:w=PEEK(&H65B)-13:RETURN
  119. 2000 IFERR=1 THENCLS:ONERRORGOTO0
  120. 2010 IFERL=1860 THENRESUME1860
  121. 2020 IFERL=1910 THENRESUME1910
  122. 2030 IFERL=1960 THENRESUME1960
  123. 2040 IFERL=530 THENERASEa:RESUME530
  124. 2050 IFERL=630 THENERASEb:RESUME630
  125. 2080 GOSUB1830:RESUME40
  126.